נניח שיש לי קובץ עם מערך קונפיגורציה (ועם הערות לצד כל אלמנט, לצורך העניין). אני יכול לערוך את זה בזמן ריצה עם מחלקת ה-Config שלי, אבל מה שאני לא יודע איך לעשות זה לשנות את המערך לתמיד, באמצעות קוד.
אני מניח שזה ידרוש איזשהו מפענח PHP פשוט וטוב... אתם מכירים משהו כזה?
17 תשובות
אני רוצה "לערוך" את קובץ הקונפיגורציה עצמו בזמן ריצה ולשמור את השינויים בקובץ המקורי. אין לי מושג מה לשנות ואיך עד זמן ריצה. אז אני לא מבין איך include אמור לעזור לי.
אוקיי, אז אתה עושה file_get_contents, עושה / בונה את השינויים שלך, שומר את הקובץ, ועושה include?
אוי, נו באמת. XDDD
כל השאלה שלי היא איך אני עושה את השינויים. אני לא יכול פשוט לחפש "key", ואז " => " ואז לשנות את מה שלא יהיה שם (שזה אגב, יכול להיות מערך/סקלר/Closure). אופס, וגם יש הערות קוד שאני לא יכול לפגוע בהן, וייתכן שה"שאילתה" שלי תתאים להם. קיצר, הבנת את הרעיון. (אני מקווה.)
אתה קורא את המערך (data) על ידי אינקלוד פשוט, משנה אותו, ורושם אותו בחזרה בצורה הבאה:
file_put_contents($file, $contents);
אני יודע לעשות את זה, אבל כמו שהדגשתי - אני צריך לשמור על ההזחה ועל ההערות בקוד.
אני חושב שאתה עושה משהו מיותר.
או שהערות ושמירת המבנה מיותרות והעריכה מתבצעת רק דרך סקריפט שאתה כותב
או שהעריכה דרך סקריפט מיותרת ותשאיר אותה רק דרך פתיחת הקובץ.
תבחר use case אחד. אין צורך לממש הכל.
---
אם אתה עושה את זה סתם מתוך אינטרס ספורטיבי,
אז או שתממש לבד עם ביטויים רגולריים, או תממש lexer משלך על בסיס php.net/token_get_all
ההערות ממש לא מיותרות.
זה לא מתוך אינטרס של "בא לי לעשות את זה כדי להתאמן" או משהו כזה. יש לי CMS, ויש כמה הגדרות תצורה שאני רוצה לאפשר למשתמש לשנות דרך לוח הניהול, ואני ממש לא הולך להגיד לו: "לך לקובץ xyz, תחפש blablabla ותרשום a בשביל לקבל ככה, b לקבל ככה."
הייתי הולך על XML אם לא הייתי מאפשר למפתח גם Closures. (שזה חלק מהגמישות של המערכת.)
אז בשביל מה לשמור על מבנה קובך, לרשום הערות בקובץ אם אתה הולך לאפשר עריכה דרך פאנל ניהול?
מה איכפת לך איך זה יראה בתוך הקובץ? שיהיה קובץ json אם base64. מה זה משנה.
אוף, אני גרוע בלהסביר את עצמי.
כי חלק מ"הרגלי הקוד" שלי זה לכתוב הערות בקוד, על מנת לאפשר למפתחים אחרים לדעת מה זה מה, ולמה ככה. ולמה ב-Closure שמפתח A כתב הוא משתמש ב-X ולא ב-Y.
בקטע הזה אפשר להשמיט את ההערות ולשים את זה בדוקומנטציה של המערכת. מה שלא יהיה אפשר לעשות זה להשמיט הערות של Closures, כי זה לא משהו מוגדר במערכת, אתה פשוט עושה מה שאתה רוצה (למטרה מסוימת, כמובן, אבל עדיין).
אני לא ממש מבין מה הקשר של הקלוז'ורים לקונפיגים שאתה רוצה לתת לאנשים לערוך.
שים אותם בקבצים שונים וזהו.
אולי אתה צודק. נראה שקצת קשה להבין את השאלות שלי לאחרונה, אולי הן נשמעות כאלה מוזרות ולא קשורות, אבל וואטבר. XD
בכל מקרה, תודה. :-)
לי בקריירת התכנות הייה שלב שנקרא
"איך אני דוחף כל מה שאני יודע לכל מקום אפשרי".
אצלי זה בדרך כלל גרם לשאלות ממש מוזרות.
מקווה שזה רק שלב. XD
אוקיי, אז החלטתי לחלק את זה לשתי סוגי קונפיגורציה:
1. קונפיגורציה שבאה עם הפריימו'ורק ושאין טעם לתת למשתמש רגיל לשנות. (אם כי בכל מקרה אני אספק הוראות למקרה שה-CMS יתמוך בכמה שינויים, ואז המשתמש ה"מתקדם" יוכל לעשות את זה ידנית.)
2. הגדרות תצורה של ה-CMS עצמו, בפורמט XML או בבסיס נתונים (עדיין לא בטוח), ואפשר לתת למנהל האתר לשנות אותן (או חלק מהן) בקלות.
יש הערות? משהו? :-)